﻿using System.Collections.Generic;

namespace _1_2
{
    class Product
    {
        string name;
        public string Name
        {
            get { return name; }
            private set { name = value; }
        }

        decimal price;
        public decimal Price
        {
            get { return price; }
            private set { price = value; }
        }

        public Product(string name,decimal price)
        {
            Name = name;
            Price = price;
        }
        public static List<Product> GetSampleProducts()
        {
            List<Product> list = new List<Product>();
            list.Add(new Product("West Side Story", 9.99m));
            list.Add(new Product("Assassins", 14.99m));
            list.Add(new Product("Frogs", 13.99m));
            list.Add(new Product("Sweeny", 10.99m));
            return list;
        }

        public override string ToString()
        {
            return string.Format("{0}: {1}", name, price);
        }
    }
}
//现在，属性拥有了私有的赋值方法（我们在构造函数中使用了这两个赋值方法）。
//并且它能非常“聪明”地猜出List<Product>是告知编译器列表中只能包含Product。
//试图将一个不同的类型添加到列表中，会造成编译时错误，并且当你从列表中获取结果时，也并不需要转换结果的类型。